The present invention is directed generally to a data-flow type control processor, and more particularly, to a control processor applied to a variety of control processes including time elements such as engine control, motor control and robot control.
FIG. 10 illustrates an example of the construction of an automobile engine control unit which is now being utilized as a product. FIG. 11 is a diagram depicting one example of the interior of a von Neumann control processor employed in an engine control unit.
In these Figures, the reference numeral 100 designates a von Neumann control processor; 101 a power transistor; 102 an ignition coil; 103 a distributor; 104 a spark plug; 105 an I/O unit of the processor 100; 111 an analog-to-digital converter (A/D converter); 112 a timer; 113 a counter; 114 a ROM; 115 a RAM; 116 an interrupt control unit; and 117 a CPU.
The von Neumann processor is classified as a processor for sequentially executing previously accumulated programs with the aid of the program counter.
The following is a description of the operation of the conventional von Neumann control processor.
Main input signals inputted to the engine control unit 100 include a crank angle sensor signal for providing pieces of information on the number of revolutions of the engine and an ignition timer, a suction quantity signal corresponding to an engine load, a water temperature signal corresponding to an engine temperature and a battery voltage signal associated with a battery electromotive force. Output signals include an ignition control signal and an injector driving signal.
The engine control unit 100 detects values, indicating an engine condition, such as the number of revolutions of the engine, the suction quantity, the water temperature by using signals from the sensors. Based on the detected values, an optimum ignition timing is calculated from a preset ignition timing formula and table. A primary current of the power transistor 101 is cut off in accordance with the calculated ignition timing. The ignition timing is controlled by driving the ignition coil 102. An idling detection signal among the input signals is expressed in a digital value to simply show a binary state thereof. The idling detection signal is read via the I/O 100. The suction quantity signal, the water temperature signal and the battery signal are inputted as analog values. The analog values are converted into digital values by the A/D converter 111.
The crank angle sensor signal is inputted directly to the interrupt control unit 116 to cause an interruption; or alternatively the sensor signal is frequency-divided by the counter 113 for counting a predetermined number of crank angle pulses and thereafter inputted to the interrupt control unit 116 to cause the interruption.
A method of calculating the ignition timing by employing the signals given above will be described. FIG. 12 is a conceptual diagram showing the calculation of ignition timing and correcting processes as well. The calculation starts with obtaining a basic ignition timing (phase) .theta..sub.B from values of the suction quantity signal and the crank angle signal. Added to this ignition timing value is a water temperature correction (phase) .theta..sub.WT in response to the water temperature signal defined as an engine warm-up condition signal. A correction value going back to a time of an top dead point -5.degree. is determined from those signals. Namely, an ignition timing (phase) .theta..sub.ADV is given by: EQU .theta..sub.ADV =.theta..sub.B +.theta..sub.WT
Besides, an actual ignition timing is determined by effecting an electrifying correction by a battery voltage a saction quantity correction by a suction quantity signal and a water temperature correction by a water temperature signal on the basis of the crank angle sensor signal.
The CPU 117 depicted in FIG. 11 executes these arithmetic processes. A program thereof is stored in the ROM 114. The RAM 115 serves to hold intermediate results. The CPU 117 is classified as a von Neumann computer including an address counter for indicating an address of the ROM 114 incorporating an execution program.
An injector pulse for suction/fuel control is calculated as follows. A pulse width Ti is expressed such as: EQU Ti=Fuel.times.Kaf.times.Kwt.times.KvB
where Fuel is the value representing a saction quantity, Kaf is the suction quantity correction coefficient, Kwt is the water temperature correction coefficient and KvB is the battery voltage correction coefficient. This arithmetic operation is started by both the crank angle sensor signal and the idle signal.
FIG. 13 is a flowchart showing a software architecture associated with the calculations described above. In the drawing, "W.D.T." represents a "Watch Dog Timer". As in the way with an interrupt routine of FIG. 13(b), an idle detection sensor discerns whether the fuel is cut or not. In the drawing, "BTDC" and "EST" represent "Before Top Dead Center" and "Electric Spark Timing", respectively.
The software is, as illustrated in FIG. 17, executed throughout entire crank angle sensor signal cycles. Three cycles--fuel injection, ignition timing and asynchronous injection--are repeated at every crank angle of 180.degree..
FIG. 15 is a block diagram depicting a construction of the control processor disclosed in Japanese Patent Application No. 133316/1989, published Dec. 26, 1990 as Japanese Patent Laid-Open Publication No. 310788/1990. Referring to FIG. 15, the numeral 1 represents a control processor; and 10 a data driven processor (DFP). The DFP 10 comprises a packet junction unit (J) 11, a packet branch unit (B) 12, a program storage unit (PS) 13, a firing process unit (FC) 14, an arithmetic operation unit (FP) 15, a queue buffer unit (Q) 16, an input interface (I/F.sub.IN) 17 of the DFP 10, an output interface (I/F.sub.OUT) 18 and a von Neumann processor 19 for controlling the control processor as a whole. The components marked with the numerals 110 to 116 are much the same as those shown by like numerals.
FIG. 16(a) depicts the input interface (I/F.sub.IN) of the DFP 10. The numeral 171 denotes a data unit latch; 172 a tag unit latch; 173 an address decoder; 174 a write selector; 20 and AND gate; 21 an inverter; and 22 a flip-flop fitted with reset/set terminals. FIG. 16(b) illustrates the output interface (I/F.sub.OUT) of the DFP 10. The numeral 175 represents a read selector; and 23 a NAND gate. FIG. 16(c) shows the A/D converter 111. The numeral 181 stands for an address latch; 182 an analog multiplexer; and 183 an A/D converting circuit. FIG. 16(d) depicts the I/O unit 110. The numeral 184 represents an input buffer; 185 an output buffer; and 186 a data latch. FIG. 16(e) depicts the counter 113. A counter 187 has a preset input.
Next, the operation of the control processor depicted in FIG. 15 will be explained.
Inputted to the control unit 1, as in the conventional example of FIG. 11, are a crank angle sensor signal, a suction quantity signal corresponding to an engine load, a water temperature signal corresponding to an engine temperature and a battery voltage signal. Output signals include an ignition control signal and an injector driving signal. FIGS. 13(a) and 13(b) show examples of a main routine job and an interrupt job. Necessary data in the input signals are taken in when generating the interrupt signal of the crank angle while perpetually computing the job of FIG. 13(b). The processes of FIG. 13(b) are thus executed. At this time the von Neumann processor 19 receives the information from the peripheral units, i.e., the I/O unit 110, the A/D converter 111, the timer 112 and the counter 113. The processor 19 generates arithmetic packets for the DFP 10 and supplies these packets via the interface I/F.sub.IN 17 to the DFP 10. The DFP 10 in turn transfers the arithmetic result to I/F.sub.OUT 18. The von Neumann processor 19 receives the arithmetic result by an interruption generated therefrom. The processor 19 outputs the arithmetic result as an ignition control signal or an injector driving signal.
Data processing within the DFP 10 is carried out by tags possessed by the packets. The von Neumann processor 19 transfers the data with a destination tag to the DFP 10. The data received by the von Neumann processor 19 from the DFP 10 have the tags. With this arrangement, the von Neumann processor 19 is capable of discerning the data received from the DFP 10, viz., distinguishing an ignition control signal or an injector driving signal.
The prior art data-flow type control processor is constructed in the manner described above. The timer is externally attached to obtain the time information. A variety of real time processes are executed by the following steps. Reading is performed by polling a value of the time. Alternatively, an interruption is generated when the external timer reaches a predetermined value, and reading is carried out by the interrupting process according to necessity. In any case, the information is transferred via the von Neumann processor by the counter or the timer connected to a bus. The von Neumann processor is required in addition to the timer and the counter. Consequently, there arises a problem of increasing a scale of the system.
It is an object of the present invention, which has been devised to obviate the foregoing problems, to provide a control processor capable of giving the time information to the arithmetic operation in a data-flow processor without using the von Neumann processor.